package com.nuoniu.sibanyun.entity.work;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.nuoniu.sibanyun.common.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 工作计划总结
 * </p>
 *
 * @author baiqiang
 * @since 2020-08-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("oa_workplan_summary")
@ApiModel(value="WorkPlanSummary对象", description="工作计划总结")
public class WorkPlanSummary extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "标题")
    @TableField("title")
    private String title;

    @ApiModelProperty(value = "周期类型")
    @TableField("type")
    private Integer type;

    @ApiModelProperty(value = "1：计划 2：总结 3：报表")
    @TableField("work_type")
    private Integer workType;

    @ApiModelProperty(value = "报表内容")
    @TableField("content")
    private String content;

    @ApiModelProperty(value = "次内容")
    @TableField("next_content")
    private String nextContent;

    @ApiModelProperty(value = "开始时间")
    @TableField("begin_date")
    private String beginDate;

    @ApiModelProperty(value = "结束时间")
    @TableField("end_date")
    private String endDate;

    @ApiModelProperty(value = "自我评价")
    @TableField("my_evaluation_content")
    private String myEvaluationContent;

    @ApiModelProperty(value = "自我评价等级")
    @TableField("my_evaluation_level")
    private String myEvaluationLevel;

    @ApiModelProperty(value = "自我评价日期")
    @TableField("my_evaluation_date")
    private LocalDateTime myEvaluationDate;

    @ApiModelProperty(value = "评价内容")
    @TableField("evaluation_content")
    private String evaluationContent;

    @ApiModelProperty(value = "评价等级")
    @TableField("evaluation_level")
    private String evaluationLevel;

    @ApiModelProperty(value = "评价时间")
    @TableField("evaluation_date")
    private LocalDateTime evaluationDate;

    @ApiModelProperty(value = "文档")
    @TableField("files")
    private String files;

    @ApiModelProperty(value = "部门")
    @TableField("dept")
    private String dept;

    @ApiModelProperty(value = "职务")
    @TableField("job")
    private String job;

    @ApiModelProperty(value = "报送id")
    @TableField("submit_id")
    private Integer submitId;

    @ApiModelProperty(value = "报送名称")
    @TableField("submit_name")
    private String submitName;

    @ApiModelProperty(value = "报送时间")
    @TableField("submit_date")
    private LocalDateTime submitDate;

    @ApiModelProperty(value = "抄送人id")
    @TableField("cc_id")
    private String ccId;

    @ApiModelProperty(value = "抄送人名称")
    @TableField("cc_name")
    private String ccName;

    @ApiModelProperty(value = "关联业务")
    @TableField("associated_business")
    private String associatedBusiness;

    @ApiModelProperty(value = "机构id")
    @TableField("office_id")
    private Integer officeId;

    @ApiModelProperty(value = "状态0:未提交 1:已提交")
    @TableField("status")
    private Integer status;

    @ApiModelProperty(value = "阅读状态:0:未审核 1:审核通过 2:驳回")
    @TableField("read_status")
    private Integer readStatus;

    @ApiModelProperty(value = "完成状态")
    @TableField("finish_status")
    private Boolean finishStatus;

    @ApiModelProperty(value = "未完成原因")
    @TableField("not_finish_cause")
    private String notFinishCause;

    @ApiModelProperty(value = "创建人id")
    @TableField("create_user_id")
    private Integer createUserId;

    @ApiModelProperty(value = "创建人姓名")
    @TableField("create_user_name")
    private String createUserName;

    @ApiModelProperty(value = "创建时间")
    @TableField("create_date")
    private Date createDate;

    @ApiModelProperty(value = "公司id")
    @TableField("company_id")
    private Integer companyId;

    @TableField(exist = false)
    private String year;

    @TableField(exist = false)
    private String month;

    @TableField(exist = false)
    private Integer tabKey;

    @TableField(exist = false)
    private String createUserIds;

    @TableField(exist = false)
    private List<WorkPlanContent> planContentList;
}
